Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
Este artigo fornece observações complementares à documentação de referência para esta API.
A Nullable classe representa um tipo de valor que pode ser atribuído null.
Diz-se que um tipo é anulável se lhe puder ser atribuído um valor ou se puder ser atribuído null, o que significa que o tipo não tem qualquer valor. Por padrão, todos os tipos de referência, como String, são anuláveis, mas todos os tipos de valor, como Int32, não são.
Em C# e Visual Basic, você marca um tipo de valor como anulável usando a ? notação após o tipo de valor. Por exemplo, int? em C# ou Integer? no Visual Basic declara um tipo de valor inteiro que pode ser atribuído null.
A Nullable<T> estrutura suporta o uso apenas de um tipo de valor como um tipo anulável porque os tipos de referência são anuláveis por design.
A Nullable classe fornece suporte complementar para a Nullable<T> estrutura. A Nullable classe suporta a obtenção do tipo subjacente de um tipo anulável e operações de comparação e igualdade em pares de tipos anuláveis cujo tipo de valor subjacente não suporta operações genéricas de comparação e igualdade.
Propriedades fundamentais
Os dois membros fundamentais da Nullable<T> estrutura são as HasValue e Value propriedades. Se a HasValue propriedade de um Nullable<T> objeto for true, o valor do objeto poderá ser acessado com a Value propriedade. Se a propriedade HasValue for false, o valor do objeto será indefinido e uma tentativa de acessar a propriedade Value lançará uma InvalidOperationException.
Encaixotamento e desencaixotamento
Quando um tipo anulável é encaixotado, o common language runtime automaticamente encaixota o valor subjacente do objeto Nullable<T>, e não o próprio objeto Nullable<T>. Ou seja, se a propriedade HasValue estiver true, o conteúdo da propriedade Value será encaixotado. Quando o valor subjacente de um tipo anulável é desempacotado, o Common Language Runtime cria uma nova Nullable<T> estrutura inicializada com o valor subjacente.
Se a HasValue propriedade de um tipo anulável for false, o resultado de uma operação de boxe será null. Consequentemente, se um tipo anulável em caixa é passado para um método que espera um argumento de objeto, esse método deve ser preparado para lidar com o caso em que o argumento é null. Quando null é desencaixotado num tipo anulável, o Common Language Runtime cria uma nova estrutura Nullable<T> e inicializa a sua propriedade HasValue para false.
Componentes do tempo de execução do Windows
Pode incluir um tipo Nullable<T> como membro de uma estrutura exportada numa biblioteca WinMD.